home *** CD-ROM | disk | FTP | other *** search
- /*
- ** -----------------------------------------------
- ** $VER: MUIPDFPrinter V1.00 (29 December 2001)
- ** ©1999-2001 Michael Merkel
- ** -----------------------------------------------
- */
-
- SIGNAL ON SYNTAX
- SIGNAL ON HALT
- /* SIGNAL ON ERROR */
- SIGNAL ON BREAK_C
- OPTIONS RESULTS
-
-
- /*
- TRACE ALL
- global.DEBUG = 1
- */
-
-
- /*
- ** first of all add the needed libraries
- */
-
- Call AddLib 'rmh.library',0,-30
-
- IF ~show("L","rmh.library")
- THEN IF ~AddLib("rmh.library", 0, -30) THEN EXIT
-
- IF RMH_AddLibrary('rxmui.library')~=0
- THEN DO
- Call RMH_EasyRequest "Couldn't open" result,"PGS",'Quit'
- Signal Quit
- END
-
- IF RMH_AddLibrary('rxasl.library')~=0
- THEN DO
- Call RMH_EasyRequest "Couldn't open" result,"PGS",'Quit'
- Signal Quit
- END
-
- Call RMH_MacroEnv 'Macro','ProgDir'
-
- /*
- ** DEBUG MODE!!!
- */
-
- Call rxMuiOpt("DEBUGMODE SHOWERR")
-
- /*
- ** Make sure rexx support is opened
- */
- IF ~SHOW('L','rexxsupport.library')
- THEN CALL ADDLIB('rexxsupport.library',0,-30)
- IF ~SHOW('L','softlogik:libs/slarexxsupport.library')
- THEN CALL ADDLIB('softlogik:libs/slarexxsupport.library',0,-30)
-
- /*
- ** set globals and defaults (including settings)
- */
- Call SetDefaults
-
- IF ~SHOW('P','PAGESTREAM')
- THEN DO
- CALL ShowRequester("Start PageStream first!", "Of course...")
- Exit
- END
- ADDRESS 'PAGESTREAM'
-
- /*
- ** do some checks before
- */
- Call CheckRoutines
-
- /*
- ** load prefs
- */
- Call LoadPrefs(standardPrefs)
- Call BuildGUI
- muiBusyWinOpen = global.FALSE
-
- /*
- ** open the window
- */
- 'LOCKINTERFACE TRUE'
- Call Set("muiWin", "OPEN", 1)
- Call GetAttr("muiWin", "OPEN", "o")
- IF (o = 0)
- THEN DO
- Say "can't open window"
- EXIT
- END
-
- Call Set("muiWin", "SLEEP", 1)
- Call PrefsWindowSet()
- Call Set("muiWin", "SLEEP", 0)
- Call EventLoop()
- Call PrefsWindowGet()
- Call Set("muiWin", "OPEN", 0)
-
- Call PDFConverter()
- Call CleanUp()
-
- EXIT
-
- /* /// BuildGUI()
- */
- BuildGUI:
-
- /*
- ** Create the rxMUI GUI
- ** --------------------
- */
-
- /*
- ** first of all the let's define the application object
- */
-
- muiApp.Title = pgsName
- muiApp.Version = "$VER: "|| pgsVersion ||' ('|| pgsDate ||')'
- muiApp.Copyright = pgsCopy
- muiApp.Author = pgsAuthor
- muiApp.Description = "Create picture catalogs within PageStream"
- muiApp.Base = pgsName
- muiApp.diskobject = pgsName
- muiApp.ctrlc = 1
- muiApp.menustrip = "muiMenuStrip"
- muiApp.subwindow = "muiWin"
-
- /*
- ** let's define the window
- */
- muiWin.ID = "MAIN"
- muiWin.Title = pgsName pgsVersion ||' ('|| pgsDate ||') - '|| pgsCopy
- muiWin.Contents = "muiMainGroup"
-
-
- /*
- ** define the menu
- */
- muiMenuStrip.0 = "muiMenuProject"
- muiMenuProject.Title = "Project"
- muiMenuProject.Class = "MENU"
- muiMenuProject.0 = MenuItem("muiMenuAbout", "About...", "?")
- muiMenuProject.1 = MenuItem("muiMenuAboutrxMUI","About RxMUI..." )
- muiMenuProject.2 = MenuItem("muiMenuAboutMUI", "About MUI..." )
- muiMenuProject.3 = MenuItem("", "BAR" )
- muiMenuProject.4 = MenuItem("muiMenuQuit", "Quit", "Q")
- muiMenuStrip.1 = "muiMenuPrefs"
- muiMenuPrefs.Title = "Prefs"
- muiMenuPrefs.Class = "MENU"
- muiMenuPrefs.0 = MenuItem("muiMenuPrefsMUI", "MUI...", "M")
- muiMenuPrefs.1 = MenuItem("", "BAR")
- muiMenuPrefs.2 = MenuItem("muiMenuLoad", "Load", "L")
- muiMenuPrefs.3 = MenuItem("muiMenuSave", "Save", "S")
- muiMenuPrefs.4 = MenuItem("muiMenuSaveAs", "Save As...", "A")
- res = NewObj("MENUSTRIP", "muiMenuStrip")
- IF (res ~= 0)
- THEN Call Err(res)
-
- /*
- ** let's define the window contents
- */
-
- tab = 0
-
- muiMainGroup.0 = "muiGroup0"
- muiGroup0.Class = "GROUP"
- muiGroup0.Frame = "GROUP"
- muiGroup0.Horiz = 0
- muiGroup0.0 = "muiGroup00"
- muiGroup00.Class = "GROUP"
- muiGroup00.Horiz = 1
- muiGroup00.Frame = "GROUP"
- muiGroup00.Background = "FILLBACK"
- muiGroup00.0 = HSpace()
- muiGroup00.1 = "muiBITMAP"
- muiBITMAP.Class = "PICTURE"
- muiBITMAP.Precision = "ICON"
- muiBITMAP.SourceType = "FILE"
- muiBITMAP.Source = pgsPic
- muiBITMAP.InputMode = "RelVerify"
- muiBITMAP.Frame = "BUTTON"
- muiGroup00.2 = Label(ParseText('%c%b%8'|| pgsName pgsVersion ||'%n\n'|| pgsCopy))
- muiGroup00.3 = HSpace()
- muiGroup0.1 = "muiGroupPage00"
- muiGroupPage00.Class = "GROUP"
- muiGroupPage00.Horiz = 1
- muiGroupPage00.0 = "muiPagerList"
- muiPagerList.Class = "NLISTVIEW"
- muiPagerList.List = "pagerList"
- muiPagerList.Weight = 20
- pagerList.Class = "NLIST"
- pagerList.List = "pagerList"
- pagerList.0 = "PDF printer"
- muiGroupPage00.1 = MakeObj(,"Balance",)
- muiGroupPage00.2 = "muiPager"
- muiPager.Class = "GROUP"
- muiPager.Weight = 50
- muiPager.PageMode = 1
- /*---------------------------------------------*/
- muiPager.tab = "muiTabPDF"; tab = tab + 1
- muiTabPDF.Class = "GROUP"
-
- muiTabPDF.0 = "muiTabPDF0"
- muiTabPDF0.Class = "GROUP"
- muiTabPDF0.0 = "muiTab0T"
- muiTab0T.Class = "TEXT"
- muiTab0T.Contents = ParseText('%c%8Page spreading%n')
- muiTabPDF0.1 = "muiTab00"
- muiTab00.Class = "GROUP"
- muiTab00.Columns = 2
- muiTab00.0 = Label(ParseText('Horizontal: '))
- muiTab00.1 = "G_X_NUM"
- g_x_num.Class = "SLIDER"
- g_x_num.Min = 1
- g_x_num.Max = 40
- g_x_num.Level = 1
- muiTab00.2 = Label(ParseText('Vertical: '))
- muiTab00.3 = "G_Y_NUM"
- g_y_num.Class = "SLIDER"
- g_y_num.Min = 1
- g_y_num.Max = 40
- g_y_num.Level = 1
-
- muiTabPDF.1 = VSpace(10)
-
- muiTabPDF.2 = "muiTabPDF1"
- muiTabPDF1.Class = "GROUP"
- muiTabPDF1.0 = "muiTab1T"
- muiTab1T.Class = "TEXT"
- muiTab1T.Contents = ParseText('%c%8PDF Start and End pages%n')
- muiTabPDF1.1 = "muiTab10"
- muiTab10.Class = "GROUP"
- muiTab10.Columns = 2
- muiTab10.0 = Label(ParseText('First Page #'))
- muiTab10.1 = "G_FIRSTPAGE"
- g_firstPage.Class = "SLIDER"
- g_firstPage.Min = 1
- g_firstPage.Max = 500
- g_firstPage.Level = 1
- muiTab10.2 = Label(ParseText('Last Page #'))
- muiTab10.3 = "G_LASTPAGE"
- g_lastPage.Class = "SLIDER"
- g_lastPage.Min = 1
- g_lastPage.Max = 500
- g_lastPage.Level = 1
-
- muiTabPDF.3 = VSpace(10)
-
- muiTabPDF.4 = "muiTabPDF2"
- muiTabPDF2.Class = "GROUP"
- muiTabPDF2.0 = "muiTab2T"
- muiTab2T.Class = "TEXT"
- muiTab2T.Contents = ParseText('%c%8Converter File settings%n')
- muiTabPDF2.1 = "muiTab20"
- muiTab20.Class = "GROUP"
- muiTab20.Columns = 2
- muiTab20.0 = HSpace(1)
- muiTab20.1 = VSpace()
- muiTab20.2 = Label("GhostScript executeable")
- muiTab20.3 = "G_FNGS"
- g_fnGS.Class = "POPASL"
- g_fnGS.Type = "FILE"
- g_fnGS.Title = "specify GhostScript executeable..."
- g_fnGS.PositiveText = "ok"
- g_fnGS.NegativeText = "cancel"
- g_fnGS.RejectIcons = 1
- g_fnGS.String = String("g_gsFileName")
- muiTab20.4 = Label("EPS Files")
- muiTab20.5 = "G_FNEPS"
- g_fnEPS.Class = "POPASL"
- g_fnEPS.Type = "FILE"
- g_fnEPS.Title = "specify EPS filename and path..."
- g_fnEPS.PositiveText = "ok"
- g_fnEPS.NegativeText = "cancel"
- g_fnEPS.RejectIcons = 1
- g_fnEPS.String = String("g_epsFileName")
-
- muiTabThumb0.2 = "muiTabThumb01"
- muiTabThumb01.Class = "GROUP"
- muiTabThumb01.Horiz = 1
- muiTabThumb01.0 = Checkmark(g_upscale)
- muiTabThumb01.1 = Label(ParseText('do not upscale'))
- muiTabThumb01.2 = HSpace()
-
- muiTab20.6 = HSpace()
- muiTab20.7 = "muiTab200"
- muiTab200.Class = "GROUP"
- muiTab200.Horiz = 1
- muiTab200.0 = Checkmark(g_leaveExternal)
- muiTab200.1 = Label(ParseText("leave EPS external"))
- muiTab200.2 = HSpace()
-
- muiTabPDF.5 = VSpace(10)
-
- muiTabPDF.6 = "muiTabPDF3"
- muiTabPDF3.Class = "GROUP"
- muiTabPDF3.0 = "muiTab3T"
- muiTab3T.Class = "TEXT"
- muiTab3T.Contents = ParseText('%c%8PDF Filename%n')
- muiTabPDF3.1 = "muiTab30"
- muiTab30.Class = "GROUP"
- muiTab30.Columns = 2
- muiTab30.0 = HSpace(1)
- muiTab30.1 = VSpace()
- muiTab30.2 = Label("PDF file to parse")
- muiTab30.3 = "G_FNPDF"
- g_fnPDF.Class = "POPASL"
- g_fnPDF.Type = "FILE"
- g_fnPDF.Title = "specify PDF file to parse..."
- g_fnPDF.PositiveText = "ok"
- g_fnPDF.NegativeText = "cancel"
- g_fnPDF.RejectIcons = 1
- g_fnPDF.DoPatterns = 1
- g_fnPDF.DoMultiSelect = 1
- g_fnPDF.Pattern = "#?.(PDF|PS|EPS)"
- g_fnPDF.String = String("g_pdfFileName")
-
- muiMainGroup.1 = "muiButtonGroup"
- muiButtonGroup.Class = "GROUP"
- muiButtonGroup.Columns = 2
- muiButtonGroup.0 = Button("G_OK", "_Generate PDF pages")
- muiButtonGroup.1 = Button("G_CANCEL", "_Cancel")
-
- /*
- ** create all
- */
- Call NewObj("APPLICATION","muiApp")
-
- /*
- ** window close gadget means quit...
- */
- Call Notify("muiWin", "CLOSEREQUEST", 1, "muiApp", "RETURNID", "QUIT")
-
- /*
- ** Ok and Cancel Buttons...
- */
- Call Notify("G_OK", "PRESSED", 0, "muiApp", "RETURNID")
- Call Notify("G_CANCEL", "PRESSED", 0, "muiApp", "RETURNID")
-
- /*
- ** Menu events...
- */
- Call Notify("muiMenuLoad", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuSave", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuSaveAs", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
- Call Notify("muiMenuPrefsMUI", "MENUTRIGGER", "EVERYTIME", "muiApp", "OpenConfigWindow")
-
- Call Notify("muiMenuAbout", "MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUT", "muiWin")
- Call Notify("muiMenuAboutrxMUI", "MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUTRXMUI", "muiWin")
- Call Notify("muiMenuAboutMUI", "MENUTRIGGER", "EVERYTIME", "muiApp", "ABOUTMUI", "muiWin")
- Call Notify("muiMenuQuit", "MENUTRIGGER", "EVERYTIME", "muiApp", "RETURNID")
-
- /*
- ** Button click -> about
- */
- Call Notify("muiBitmap", "PRESSED", 0, "muiApp", "ABOUT", "muiWin")
-
- Call Notify("muiPagerList", "ACTIVE", "EVERYTIME", "muiPager", "SET", "ACTIVEPAGE", "TRIGGERVALUE")
-
- /*
- ** Set active gadget at start
- */
- Call Set("muiWin", "ActiveObject", "G_OK")
- Call set("muiPagerList", "ACTIVE", 0)
-
- /*
- ** Set all the Cycle chains (here, because it will not work above!)
- */
- Call Set("muiPagerList", "CYCLECHAIN", 1)
-
- Call Set("g_x_num", "CYCLECHAIN", 1)
- Call Set("g_y_num", "CYCLECHAIN", 1)
- Call Set("g_firstPage", "CYCLECHAIN", 1)
- Call Set("g_lastPage", "CYCLECHAIN", 1)
- Call Set("g_fnGS", "CYCLECHAIN", 1)
- Call Set("g_fnEPS", "CYCLECHAIN", 1)
- Call Set("g_leaveExternal", "CYCLECHAIN", 1)
- Call Set("g_fnPDF", "CYCLECHAIN", 1)
- Call Set("g_ok", "CYCLECHAIN", 1)
- Call Set("g_cancel", "CYCLECHAIN", 1)
-
- /*
- ** Set all the short help texts
- */
- Call Set("g_x_num", "SHORTHELP", ParseText("Number of thumbnails per row."))
- Call Set("g_y_num", "SHORTHELP", ParseText("Number of thumbnails per column."))
- Call Set("g_firstPage", "SHORTHELP", ParseText("First page in PDF File to place."))
- Call Set("g_lastPage", "SHORTHELP", ParseText("Last page in PDF File to place."))
- Call Set("g_fnGS", "SHORTHELP", ParseText("Location of Ghostscript executable."))
- Call Set("g_fnEPS", "SHORTHELP", ParseText("Path and name of temporary EPS files."))
- Call Set("g_leaveExternal", "SHORTHELP", ParseText("Leave temp EPS files external"))
- Call Set("g_fnPDF", "SHORTHELP", ParseText("THE PDF file."))
- Call Set("g_ok", "SHORTHELP", ParseText("Start the Catalog generation"))
- Call Set("g_cancel", "SHORTHELP", ParseText("Leave program"))
-
- Return
- /* /// */
- /* /// BusyClose()
- */
- BusyClose:
- IF (muiBusyWinOpen = global.TRUE)
- THEN DO
- Call GetAttr("muiBusyWin", "OPEN", "o")
- IF (o ~= 0)
- THEN Call Set("muiBusyWin", "OPEN", 0)
- Call Dispose("muiBusyWin")
- muiBusyWinOpen = FALSE
- END
- Return
- /* /// */
- /* /// BusyHandle(bNum, current)
- */
- BusyHandle: PROCEDURE
- /*
- ** Handle the mui busy window for font loading...
- */
- PARSE ARG bNum,current
-
- bName = "muiBusyGauge" || bNum
- /*
- GetAttr(bName, "MAX", max)
- */
- Call BusyProgress(bNum, current)
-
- /*
- ** this is the standard cycle to handle an application
- */
- ctrl_C = 2**12
- s = 0
- Call Handle("muiApp", "H", s)
- DO i = 0 TO (H.num - 1)
- id = H.i
- SELECT
- WHEN (id = "BUSY_CANCEL")
- THEN DO
- userCancel = 1
- END
- END
- END
- s = Wait( OR(h.signals, ctrl_C) )
- IF (AND(s, ctrl_C) ~= 0)
- THEN userCancel = 1
-
- Return userCancel
- /* /// */
- /* /// BusyOpen(title, bAnz, text1, text2, text3, total1, total2, total3)
- */
- BusyOpen:
- /*
- ** Open a MUI busy requester with a maximum of 3 sliders (should be enough)
- */
- userCancel = 0
- PARSE ARG title,bAnz,text1,text2,text3,total1,total2,total3
-
- /*
- ** let's define the window
- */
-
- muiBusyWin.ID = "BUSY"
- muiBusyWin.Title = ParseText(title)
- muiBusyWin.Contents = "muiBusyGroup"
- muiBusyWin.NoMenus = 1
-
- /*
- ** let's define the window contents
- ** (simply 3 versions... how lazy!)
- */
-
- muiBusyGroup.0 = "muiBusyGroup0"
- muiBusyGroup0.Class = "GROUP"
- muiBusyGroup0.Frame = "GROUP"
- muiBusyGroup0.Horiz = 0
- muiBusyGroup0.0 = "muiBusyText1"
- muiBusyText1.Class = "TEXT"
- muiBusyText1.Contents = ParseText(text1)
- muiBusyGroup0.1 = "muiBusyGauge1"
- muiBusyGauge1.Class = "GAUGE"
- muiBusyGauge1.Frame = "GAUGE"
- muiBusyGauge1.Horiz = 1
- muiBusyGauge1.InfoText = ""
- muiBusyGauge1.Max = total1
- muiBusyGauge1.Current = 0
- muiBusyGauge1.FixHeightTxt = 1
- IF (bAnz >= 2)
- THEN DO
- muiBusyGroup0.2 = "muiBusyText2"
- muiBusyText2.Class = "TEXT"
- muiBusyText2.Contents = ParseText(text2)
- muiBusyGroup0.3 = "muiBusyGauge2"
- muiBusyGauge2.Class = "GAUGE"
- muiBusyGauge2.Frame = "GAUGE"
- muiBusyGauge2.Horiz = 1
- muiBusyGauge2.InfoText = ""
- muiBusyGauge2.Max = total2
- muiBusyGauge2.Current = 0
- muiBusyGauge2.FixHeightTxt = 1
- END
- IF (bAnz = 3)
- THEN DO
- muiBusyGroup0.4 = "muiBusyText3"
- muiBusyText3.Class = "TEXT"
- muiBusyText3.Contents = ParseText(text3)
- muiBusyGroup0.5 = "muiBusyGauge3"
- muiBusyGauge3.Class = "GAUGE"
- muiBusyGauge3.Frame = "GAUGE"
- muiBusyGauge3.Horiz = 1
- muiBusyGauge3.InfoText = ""
- muiBusyGauge3.Max = total3
- muiBusyGauge3.Current = 0
- muiBusyGauge3.FixHeightTxt = 1
- END
-
- IF (bAnz = 1)
- THEN DO
- muiBusyGroup0.2 = HBar()
- muiBusyGroup0.3 = Button("BUSY_CANCEL", "_Cancel")
- END
- ELSE IF (bAnz = 2)
- THEN DO
- muiBusyGroup0.4 = HBar()
- muiBusyGroup0.5 = Button("BUSY_CANCEL", "_Cancel")
- END
- ELSE IF (bAnz = 3)
- THEN DO
- muiBusyGroup0.6 = HBar()
- muiBusyGroup0.7 = Button("BUSY_CANCEL", "_Cancel")
- END
-
- /*
- ** Busy Cancel Button...
- */
- Call Notify("BUSY_CANCEL", "PRESSED", 0, "muiApp", "SETVAR", "userCancel")
-
- /*
- ** generate new window object
- */
- res = NewObj("WINDOW","muiBusyWin",,1)
- IF (res ~= 0)
- THEN Call err(res)
- muiBusyWinOpen = global.TRUE
-
- /*
- ** Set active gadget at start
- */
- Call Set("muiBusyWin", "ActiveObject", "BUSY_CANCEL")
-
- /*
- ** to let the window be a bit larger....
- */
- Call Set("muiBusyGauge1", "INFOTEXT", ".............................................................................")
-
- /*
- ** Add window to application
- */
- Call Add("muiApp", "muiBusyWin")
-
- Call Set("muiBusyWin", "OPEN", 1)
- Call GetAttr("muiBusyWin", "OPEN", "o")
- IF (o = 0)
- THEN DO
- Say "can't open busy window!"
- Call ShowRequester("Can't open busy window! -> Exiting", "Sorry...")
- Call CleanUp
- END
- Return 1
- /* /// */
- /* /// BusyProgress(bNum, current)
- */
- BusyProgress: PROCEDURE
- /*
- ** Set a new progress
- */
- PARSE ARG bNum,current
-
- bName = "muiBusyGauge" || bNum
- Call GetAttr(bName, "MAX", max)
- Call Set(bName, "CURRENT", Trunc(current))
- Call Set(bName, "INFOTEXT", Trunc(100*current/max) ||"%")
- Return userCancel
- /* /// */
- /* /// BusyText(bNum, text)
- */
- BusyText:
- /*
- ** Set a new text for one gauge in the busy requester
- */
- PARSE ARG bNum,text
-
- bName = "muiBusyText" || bNum
- Call Set(bName, "CONTENTS", ParseText(text))
- Return
- /* /// */
- /* /// CheckPrefsVersion(fileName)
- */
- CheckPrefsVersion:
- /*
- ** Check if prefsfile is compatible
- ** --------------------------------
- */
-
- PARSE ARG fileName
-
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- ok = Open('Prefs', fileName, 'R')
- IF (ok = 1)
- THEN DO
- dummy = ReadLn('Prefs')
- cl = Close('Prefs')
-
- IF ( Left(dummy, Length(pgsName)) = pgsName) & (Right(dummy,4) >= pgsLVer)
- THEN Return 0
- END
- RETURN 1
- /* /// */
- /* /// CheckRoutines()
- */
- CheckRoutines:
- ADDRESS "PAGESTREAM"
-
- 'CURRENTWINDOWPATH'
- oldWinName = RESULT
- IF (RC = 10)
- THEN DO
- Call ShowRequester('Please open a new Document first.')
- ADDRESS PAGESTREAM 'LOCKINTERFACE FALSE'
- Call CleanUp()
- EXIT
- END
-
- 'GETWINDOWPOS SIZE wp WINDOW "'oldWinName'"'
- wPw = wp.w
- wPh = wp.h
-
- 'GETPAGEMASTERPAGE MASTERPAGE mname WINDOW "'oldwinname'"'
- IF (RC = 10)
- THEN DO
- Call ShowRequester('Please open a new Document first.')
- ADDRESS PAGESTREAM 'LOCKINTERFACE FALSE'
- Call CleanUp()
- EXIT
- END
-
- 'CURRENTPAGE WINDOW "'oldwinname'"'
- pageNumber = RESULT
-
- IF ((pageNumber < 1) | (pageNumber > 999999))
- THEN DO
- /* maybe the user started from the masterpage?? */
- Call ShowRequester('Please go to a valid page and start again!')
- ADDRESS PAGESTREAM 'LOCKINTERFACE FALSE'
- Call CleanUp()
- EXIT
- END
-
- Return
- /* /// */
- /* /// CleanUp()
- */
- CleanUp:
-
- /*
- ** Close busy requester, clean up and leave program
- ** ------------------------------------------------
- */
-
- IF (muiBusyWinOpen = global.TRUE)
- THEN DO
- Call BusyClose()
- END
-
- /*
- ** Unlock PageStream
- */
- Call UnlockPageStream()
-
- IF (global.DumpFile ~= '')
- THEN DO
- Close("global.DumpFile")
- END
-
- EXIT
- /* /// */
- /* /// ConvertToShortMeasurement(inp)
- */
- /*************************************************/
- /* convert long measurement to short measurement */
- /* (CENTIMETERS -> cm ...) */
- /*************************************************/
- ConvertToShortMeasurement:
- PARSE ARG inp
-
- long = 'INCHES CENTIMETERS MILLIMETERS PICAS POINTS PRINTERPICAS PRINTERPOINTS CICEROS DIDOTPOINTS FEET METERS'
- short = 'i cm mm p pt pp ppt c d f m'
-
- outp = ''
- DO k = 1 to Words(long)
- IF ( Word(long, k) = inp )
- THEN outp = Word(short, k)
- END
- IF (outp = '')
- THEN DO
- DO k = 1 to Words(long)
- IF (Word(long, k) = inp)
- THEN outp = Word(short, k)
- END
- END
- Return outp
- /* /// */
- /* /// dumpVar(VarName)
- */
- dumpVar:
- PARSE ARG vn
-
- IF global.DEBUG > 0
- THEN DO
- INTERPRET 't = "'|| vn || ' = "'|| vn
- Call dumpText(t)
- END
- Return 0
- /* /// */
- /* /// dumpText(text)
- */
- dumpText:
- PARSE ARG text
-
- IF global.DEBUG > 0
- THEN DO
- Say text
- IF global.debug = 2
- THEN DO
- IF (global.DumpFile = '')
- THEN DO
- global.DumpFile = 'DumpFile'
- Call Open("global.DumpFile", "CON:0/0/1000/100/","W")
- END
- IF global.DumpFile ~= ''
- THEN DO
- Call WriteLN("global.DumpFile", text)
- END
- END
- END
- Return 0
- /* /// */
- /* /// err(res)
- */
- err:
- PARSE ARG res
-
- ADDRESS 'PAGESTREAM'
- 'LOCKINTERFACE FALSE'
- 'REFRESH ON'
- 'REFRESHWINDOW WINDOW "'|| oldWinName ||'"'
- ''defmeasure''
- Call pgsRequester(GetRXmuiString(res) "in line" sigl-1)
- Exit
- /* /// */
- /* /// EventLoop()
- */
- EventLoop:
- /*
- ** this is the standard cycle to handle an application
- */
- ctrl_C = 2**12
- s = 0
- DO FOREVER
- Call Handle("muiApp", "H", s) /* THIS IS LINE prefs.rxMUI_LINE_1 = 954 */
- ws = 0
- DO i = 0 TO (H.num - 1)
- id = H.i
- SELECT
- WHEN (id = "QUIT") | (id = "G_CANCEL")
- THEN DO
- Call CleanUp
- EXIT
- END
-
- WHEN (id = "G_GRABMP")
- THEN DO
- Call PrefsWindowGet()
- Call GrabMasterPage()
- Call PrefsWindowSet()
- END
-
- WHEN (id = "MUIMENUPREFSMUI")
- THEN DO
- END
-
- WHEN (id = "MUIMENULOAD")
- THEN DO
- Call LoadPrefsAs()
- Call PrefsWindowSet()
- END
-
- WHEN (id = "MUIMENUSAVE")
- THEN DO
- Call PrefsWindowGet()
- Call SavePrefs()
- Call PrefsWindowSet()
- END
-
- WHEN (id = "MUIMENUSAVEAS")
- THEN DO
- Call PrefsWindowGet()
- Call SavePrefsAs()
- Call PrefsWindowSet()
- END
-
- WHEN (id = "MUIMENUQUIT")
- THEN DO
- IF (ShowRequester('Really Quit?', 'No|Yes') = 0)
- THEN DO
- Call CleanUp
- EXIT
- END
- END
-
- WHEN (id = "G_OK")
- THEN DO
- Return
- END
-
- OTHERWISE Say h.i
- END
- END
- IF (~ws) THEN Iterate
- s = Wait( OR(h.signals, ctrl_C) )
- IF (AND(s, ctrl_C) ~= 0)
- THEN EXIT
- END
- EXIT
- /* /// */
- /* /// GetDefaultMeasurementSystem()
- */
- GetDefaultMeasurementSystem:
- PROCEDURE
-
- 'GETMEASUREMENTS COORDINATE stemc RELATIVE rel TEXT tex FROM fro'
- st = 'SETMEASUREMENTS COORDINATE 'stemc.horizontal stemc.vertical' RELATIVE 'rel' TEXT 'tex' FROM 'fro
- 'SETMEASUREMENTS COORDINATE POINTS SAMEAS RELATIVE SAMEAS TEXT POINTS FROM PAGE'
- Return st
- /* /// */
- /* /// GetFileName(prefName)
- */
- GetFileName:
- PARSE ARG fileName,text
- file = FilePart(fileName)
- path = PathPart(fileName)
-
- 'GETFILE TITLE "'|| text ||'" PATH "'|| path ||'" FILE "'|| file ||'"'
- IF (RC = 0)
- THEN fileName = RESULT
- ELSE fileName = 0
- Return fileName
- /* /// */
- /* /// GrabMasterPage()
- */
- GrabMasterPage:
- ADDRESS 'PAGESTREAM'
-
- 'CURRENTWINDOWPATH'
- global.WindowName = RESULT
-
- 'GETPAGEMASTERPAGE MASTERPAGE _mName'
- IF (RC = 10)
- THEN DO
- Call ShowRequester('Please open a new Document first! Quit now!')
- Return
- END
- global.MasterPageName = _mName
-
- 'GETMEASUREMENTS COORDINATE _stemC'
-
- IF (_stemc.vertical = 'SAMEAS')
- THEN _stemc.vertical = _stemc.horizontal
-
- 'GETMARGINGUIDES _guides'
-
- global.MasterPageMargin_Left = _guides.inside
- global.MasterPageMargin_Right = _guides.outside
- global.MasterPageMargin_Top = _guides.top
- global.MasterPageMargin_Bottom = _guides.bottom
-
-
- 'GETDIMENSIONS _dim MASTERPAGE "'|| global.MasterPageName ||'" WINDOW "'|| global.WindowName ||'"'
- IF (_dim.orientation = 'PORTRAIT')
- THEN DO
- global.MasterPageSize_Width = _dim.width
- global.MasterPageSize_Height = _dim.height
- END
- ELSE DO
- global.MasterPageSize_Width = _dim.height
- global.MasterPageSize_Height = _dim.width
- END
- Return
- /* /// */
- /* /// LoadPrefs(fileName)
- */
- LoadPrefs:
-
- /*
- ** load the preferences file
- ** -------------------------
- */
-
- PARSE ARG fileName
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- say 'loading 'fileName' ...'
-
- /*
- ** Check the version of the prefs file
- */
-
- IF (CheckPrefsVersion(fileName) ~= 0)
- THEN DO
- Call ShowRequester('Prefsfile not found or not valid! Using defaults.', 'Hmm...')
- Return
- END
- ELSE DO
- Call Open('Prefs', fileName, 'R')
- Say 'Reading prefs file...'
- dummy = ReadLN('Prefs')
- DO xx = 1 to 100
- command = ReadLn('Prefs')
- INTERPRET command
- IF EOF('Prefs') THEN LEAVE
- END
- Call Close('Prefs')
- END
- RETURN
- /* /// */
- /* /// LoadPrefsAs()
- */
- LoadPrefsAs:
- /*
- ** Load Prefs with selectable name
- ** -------------------------------
- */
-
- prefName = GetFileName(currentPrefs, 'Load Preferences...')
- IF (prefName ~= 0)
- THEN DO
- currentPrefs = prefName
- Call LoadPrefs(currentPrefs)
- END
- Return
- /* /// */
- /* /// pgsRequester(text)
- */
- pgsRequester:
- PARSE ARG meldung
-
- /*
- ** Convert to multiple lines
- */
-
- _num = 1
- mLines.num = _num
- mLines.0 = meldung
-
- DO FOREVER
- _prev = _num-1
- pos = Index(mLines._prev, '|')
- IF (pos = 0)
- THEN LEAVE
-
- mLines._num = SubStr(mLines._prev, pos+1)
- mLines._prev = Left(mLines._prev, pos-1)
- _num = _num + 1
- END
- mLines.num = _num
-
- l = 0
- DO kk = 0 TO mLines.num - 1
- IF (l < Length(mLines.kk) * 8)
- THEN l = Length(mLines.kk) * 8
- Say mLines.kk
- END
-
- ADDRESS "PAGESTREAM"
- 'ALLOCAREXXREQUESTER "error inside '|| pgsName ||'" '|| (l+20) (40 + mLines.num * 10)
- reqhandle = RESULT
-
- 'ADDAREXXGADGET '|| reqhandle ||' EXIT '|| (l/2 - 25) (20 + mLines.num * 10) ||' 50 LABEL "_Ok"'
- dummy = RESULT
-
- DO kk = 0 TO mLines.num - 1
- 'ADDAREXXGADGET 'reqhandle' TEXT 10 ' (10 + kk*10) l 'STRING "'mLines.kk'"'
- END
-
- 'DOAREXXREQUESTER 'reqhandle
- dummy = RESULT
-
- 'FREEAREXXREQUESTER 'reqhandle
- RETURN
- /* /// */
- /* /// PrefsWindowGet()
- */
- PrefsWindowGet:
- Call GetAttr("g_firstPage", "VALUE", "prefs.PV_firstPage")
- Call GetAttr("g_lastPage", "VALUE", "prefs.PV_lastPage")
- IF (prefs.PV_lastPage < prefs.PV_firstPage)
- THEN DO
- prefs.PV_lastPage = prefs.PV_firstPage
- END
-
- Call GetAttr("g_x_num", "VALUE", "prefs.PV_x_num")
- Call GetAttr("g_y_num", "VALUE", "prefs.PV_y_num")
-
- Call GetAttr("g_gsFileName", "CONTENTS", "prefs.PV_gsFileName")
- Call GetAttr("g_epsFileName", "CONTENTS", "prefs.PV_epsFileName")
- Call GetAttr("g_leaveExternal", "SELECTED", "prefs.PV_leaveExternal")
-
- Call GetAttr("g_pdfFileName", "CONTENTS", "prefs.PV_pdfFileName")
- Return
- /* /// */
- /* /// PrefsWindowSet()
- */
- PrefsWindowSet:
- Call Set("g_firstPage", "VALUE", prefs.PV_firstPage)
- Call Set("g_lastPage", "VALUE", prefs.PV_lastPage)
-
- Call Set("g_x_num", "VALUE", prefs.PV_x_num)
- Call Set("g_y_num", "VALUE", prefs.PV_y_num)
-
-
- Call Set("g_gsFileName", "CONTENTS", prefs.PV_gsFileName)
- Call Set("g_epsFileName", "CONTENTS", prefs.PV_epsFileName)
- Call Set("g_leaveExternal", "SELECTED", prefs.PV_leaveExternal)
-
- Call Set("g_pdfFileName", "CONTENTS", prefs.PV_pdfFileName)
-
- Return
- /* /// */
- /* /// SavePrefs(fileName)
- */
- SavePrefs:
- /*
- ** save the preferences file
- ** -------------------------
- */
-
- PARSE ARG filename
- IF (fileName = "")
- THEN fileName = standardPrefs
-
- say 'saving 'fileName' ...'
-
- okOpen = Open('Prefs', fileName, 'W')
- IF (okOpen = 1)
- THEN DO
- OPTIONS FAILAT 11
- Say 'writing prefs "'|| fileName ||'"...'
- WriteLN('Prefs', pgsName pgsVersion)
-
- Call WritePrefsNameValue('Prefs', 'prefs.PV_firstPage')
- Call WritePrefsNameValue('Prefs', 'prefs.PV_lastPage')
-
- Call WritePrefsNameValue('Prefs', 'prefs.PV_x_num')
- Call WritePrefsNameValue('Prefs', 'prefs.PV_y_num')
-
- Call WritePrefsNameValue('Prefs', 'prefs.PV_gsFileName')
- Call WritePrefsNameValue('Prefs', 'prefs.PV_epsFileName')
- Call WritePrefsNameValue('Prefs', 'prefs.PV_leaveExternal')
-
- Call WritePrefsNameValue('Prefs', 'prefs.PV_pdfFileName')
-
- WriteLN('Prefs', '/* END OF Prefsfile for '|| pgsName pgsVersion ||' ('|| pgsDate ||') */')
- OPTIONS FAILAT 10
- Call Close('Prefs')
- END
- ELSE DO
- Say 'Error writing prefs file "'|| fileName ||'"'
- Call ShowRequester('ERROR writing prefs file '|| fileName, 'Damn!')
- END
- RETURN
- /* /// */
- /* /// SavePrefsAs()
- */
- SavePrefsAs:
- /*
- ** Save Prefs with selectable name
- ** -------------------------------
- */
-
- prefName = GetFileName(currentPrefs, 'Save Preferences As...')
- IF (prefName ~= 0)
- THEN DO
- currentPrefs = prefName
- Call SavePrefs(currentPrefs)
- END
- Return
- /* /// */
- /* /// SetCorrectMSys(vName)
- */
- SetCorrectMSys:
- PARSE ARG vName
-
- Interpret vName || ' = p2d('|| vName || ', mSys('|| vName ||')) || mSys('|| vName ||')'
- Return
- /* /// */
- /* /// SetDefaults()
- */
- SetDefaults:
-
- /*
- ** defaults needed in the program
- */
-
- pgsInstallDir = 'PageStream:Scripts/MUIPDFPrinter'
- pgsName = 'MUIPDFPrinter'
- pgsVersion = 'V1.00'
- pgsAuthor = 'Michael Merkel'
- pgsCopy = '©1996-2001 Michael Merkel'
- pgsLVer = '1.00'
- pgsDate = '12/29/2001'
- pgsPic = pgsInstallDir || '/MUIPDFPrinter.pic'
- standardPrefs = pgsInstallDir || '/MUIPDFPrinter.prefs'
-
- global.TRUE = 1
- global.FALSE = 0
-
- /*
- ** globals
- */
- global.TMPEPS = 'T:_page.eps_'
- global.DumpFile = ''
-
- currentPrefs = standardPrefs
- const.measure = 'pt'
- const.tf.0 = 'FALSE'
- const.tf.1 = 'TRUE'
- const.RetCanceled = -1
- const.RetErrorGS = -2
- const.RetErrorPlace = -3
-
- /*
- ** PDF values
- */
-
- prefs.PV_pdfFileName = 'RAM:test.pdf'
- prefs.PV_epsFileName = 'T:EPSfiles'
- prefs.PV_gsFileName = 'Ghostscript:gs'
- prefs.PV_firstPage = 1
- prefs.PV_lastPage = 1
- prefs.PV_x_num = 1
- prefs.PV_y_num = 2
- prefs.PV_leaveExternal = global.TRUE
-
- Call SplitAllFileNames
- Return
- /* /// */
- /* /// ShowRequester(question, knobs)
- */
- ShowRequester:
- /*
- ** Show requester with some gadgets
- ** --------------------------------
- */
- PARSE ARG question,knobs
- say "knobs: " || knobs
- IF (knobs = "")
- THEN knobs = "OK"
- Say question
- reqData = EasyRequest(question, pgsName, knobs)
- Say reqData
- Return reqData
- /* /// */
- /* /// WritePrefsNameValue(file, name)
- */
- WritePrefsNameValue:
- /*
- ** write parameter with value in file
- ** ----------------------------------
- */
-
- PARSE ARG file,name
-
- Interpret "saveSTR = '"|| name ||" = ""'"|| name ||"'""'"
- WriteLN(file, saveSTR)
- Return
- /* /// */
-
- /* /// ON ERROR/FAILURE
- */
- Error:
- Failure:
- f = rc
- str = "*-------------------------------------------*"
- str = str || '|' || "* Command in line "|| sigl
- str = str || '|' || "* throws RC="|| f
- str = str || '|' || "*-------------------------------------------*"
-
- Call UnlockPageStream()
- Call pgsRequester(str)
- Exit
- /* /// */
- /* /// ON HALT
- */
- Halt:
- signal Quit
- Exit
- /* /// */
- /* /// ON NOVALUE
- */
- NoValue:
- f = rc
- str = "*-------------------------------------------*"
- str = str || '|' || "* Error in line "|| sigl
- str = str || '|' || "* used uninitialized variable!"
- str = str || '|' || "*-------------------------------------------*"
-
- Call UnlockPageStream()
- Call pgsRequester(str)
-
- Signal QUIT
- Exit
- /* /// */
- /* /// ON RXMUIERROR
- */
- RxMUIError:
- IF Symbol('RxMUIError')=='VAR'
- THEN RxMUIErrorMore=', More:' RxMUIError
- ELSE RxMUIErrorMore=''
-
- f = rc
- str = "*-------------------------------------------*"
- str = str || '|' || "* Syntax Error in line "|| sigl
- str = str || '|' || "* rxMuiError "|| arg(1) ||": " GetRxMUIString(arg(1))RxMUIErrorMore
- str = str || '|' || "*-------------------------------------------*"
-
- Call UnlockPageStream()
- Call pgsRequester(str)
-
- Signal Quit
- Exit
- /* /// */
- /* /// ON SYNTAX
- */
- SYNTAX:
- f = rc
- str = "*-------------------------------------------*"
- str = str || '|' || "* Syntax Error in line "|| sigl
- str = str || '|' || "* "|| f ||":" ErrorText(f)
- str = str || '|' || "*-------------------------------------------*"
-
- Call UnlockPageStream()
- Call pgsRequester(str)
-
- Signal QUIT
- EXIT
- /* /// */
-
- /* /// ON QUIT
- */
- Quit:
- exit
- /* /// */
-
- /* /// UnlockPageStream()
- */
- UnlockPageStream:
- /*
- ** Unlock PageStream and QUIT
- */
- ADDRESS 'PAGESTREAM'
- 'LOCKINTERFACE FALSE'
- 'REFRESH ON'
- IF (global.WindowName ~= '')
- THEN DO
- 'REFRESHWINDOW WINDOW "'|| global.WindowName ||'"'
- ''global.DefMeasure''
- END
- Return
- /* /// */
-
- /* /// SplitFileName(fileNameAll)
- ** -------------------------------------------------
- ** Split a filename in Directory and actual Filename
- ** -------------------------------------------------
- */
-
- SplitFileName:
- PARSE ARG fileNameAll
-
- name = Reverse(fileNameAll)
- pos = pos('/',name)
- IF (pos = 0)
- THEN pos = pos(':',name)
-
- IF (pos = 0)
- THEN DO
- _splitName.dirN = ''
- _splitName.fileN = fileNameAll
- END
- ELSE DO
- _splitName.dirN = Left(fileNameAll, Length(fileNameAll)-(pos-1))
- _splitName.fileN = Right(fileNameAll, pos-1)
- END
- _splitName.completeN = fileNameAll
- Return
- /* /// */
- /* /// SplitAllFileNames()
- ** -------------------------------------------------
- ** Split all used filenames
- ** -------------------------------------------------
- */
- SplitAllFilenames:
- Call SplitFileName(prefs.PV_pdfFileName)
- IF (_splitName.completeN ~= 0)
- THEN DO
- prefs.PV_pdfFileNamePath = _splitName.dirN
- prefs.PV_pdfFileNameFile = _splitName.fileN
- END
-
- Call SplitFileName(prefs.PV_epsFileName)
- IF (_splitName.completeN ~= 0)
- THEN DO
- prefs.PV_epsFileNamePath = _splitName.dirN
- prefs.PV_epsFileNameFile = _splitName.fileN
- END
-
- Call SplitFileName(prefs.PV_gsFileName)
- IF (_splitName.completeN ~= 0)
- THEN DO
- prefs.PV_gsFileNamePath = _splitName.dirN
- prefs.PV_gsFileNameFile = _splitName.fileN
- END
- Return
- /* /// */
-
- /* /// PDFConverter()
- */
- PDFConverter:
- /*
- ** What to do:
- ** - LOOP AT pages_of_PDF_file
- ** - Convert each page with ghostscript as (E)PS file
- ** - Load each page with PageStream and place it on the paper
- ** - Print each paper
- ** - ENDLOOP
- */
-
- /*
- ** get all selected PDF file names
- */
- loop = 0
- pdfFile.num = loop + 1
- pdfFile.loop = prefs.PV_pdfFileName
- f = POS(',', pdfFile.loop)
-
- DO WHILE (f > 0)
- loopNext = loop + 1
- pdfFile.loopNext = SubStr(pdfFile.loop, f + 2)
- pdfFile.loop = SubStr(pdfFile.loop, 1, f - 2)
- loop = loopNext
- pdfFile.num = loop + 1
-
- f = POS(',', pdfFile.loop)
- END
-
- Call BusyOpen("please hold on...", 2, "...", "...", "", pdfFile.num, (1 + prefs.PV_lastPage - prefs.PV_firstPage), 0)
- ADDRESS 'PAGESTREAM'
-
- /*
- ** get default measurement system and switch to points
- */
-
- global.DefMeasure = GetDefaultMeasurementSystem()
-
- /*
- ** get Position/Size and fileinfo of the EPS object
- */
-
- Call GrabMasterPage
-
- global.currentPDFPage = 1
-
- global.oneX = (global.MasterPageSize_Width - global.MasterPageMargin_right - global.MasterPageMargin_left) / prefs.PV_x_num
- global.oneY = (global.MasterPageSize_Height - global.MasterPageMargin_bottom - global.MasterPageMargin_top) / prefs.PV_y_num
-
- /*
- ** loop all files and place pages
- */
- currentName = pdfFile.0
- DO k = 0 to (pdfFile.num - 1)
- IF (BusyHandle(1, (k+1)) = 1)
- THEN DO
- RETURN
- END
-
- ret = PlaceFile(pdfFile.k,k)
-
- IF (ret = const.RetCanceled)
- THEN DO
- RETURN
- END
- END
-
- Call CleanUp()
-
- RETURN
- /* /// */
- /* /// ret = PlaceFile(FileName)
- */
- PlaceFile: PROCEDURE EXPOSE global. prefs. const.
- PARSE ARG fileName,fNum
-
- Call dumpVar("global.MasterPageMargin_Left")
- Call dumpVar("global.oneX")
-
- /*
- ** What to do:
- ** - LOOP AT pages of fileName
- ** - Convert each page with ghostscript as (E)PS file
- ** - Load each page with PageStream and place it on the paper
- ** - ENDLOOP
- */
-
- Call BusyText(1, "%c%bprocessing " || fileName || "%n")
-
- ADDRESS 'PAGESTREAM'
-
- oldDir = PRAGMA('D', prefs.PV_gsFileNamePath)
-
- DO from = prefs.PV_firstPage TO prefs.PV_lastPage
- Interpret 'ADDRESS 'appPort''
- Call BusyText(2, "%c%bworking on page " || from || "/" || prefs.PV_lastPage || "%n\n%c...%n")
-
- IF (BusyHandle(2, 1 + from - prefs.PV_firstPage) = 1)
- THEN DO
- Return const.RetCanceled
- /*
- Call CLEANUP
- EXIT
- */
- END
-
- to = from
- Call dumpText(''prefs.PV_gsFileNameFile ||' -dBATCH -dNOPAUSE -sDEVICE=epswrite -sOutputFile='|| global.TMPEPS ||' -dFirstPage='|| from ||' -dLastPage='|| to ||' "'|| fileName ||'"')
- ADDRESS 'COMMAND'
- ''prefs.PV_gsFileNameFile ||' -dBATCH -dNOPAUSE -sDEVICE=epswrite -sOutputFile='|| global.TMPEPS ||' -dFirstPage='|| from ||' -dLastPage='|| to ||' "'|| fileName ||'"'
-
- _rc = rc
- _result = result
-
- DumpText(' ------------------------ '|| _RC ||' ---------------------- ')
- DumpText( ' ------------------------ '|| _RESULT ||' ---------------------- ')
-
- IF (_RC ~= 0)
- THEN DO
- Return const.RetErrorGS
- END
-
- number1 = '00' || fNum
- number1 = Right(number1, 3)
- number2 = '00' || from
- number2 = Right(number2, 3)
- toFile = prefs.PV_epsFileName || number1 || number2 || '.eps'
- DumpText('C:Copy "'|| global.TMPEPS ||'" TO "'|| toFile ||'"')
- DumpText('C:Delete "'|| global.TMPEPS ||'"')
- ADDRESS COMMAND 'C:Copy "'|| global.TMPEPS ||'" TO "'|| toFile ||'"'
- ADDRESS COMMAND 'C:Delete "'|| global.TMPEPS ||'"'
-
- /*
- ** get pdf picture into document
- */
-
- a = (global.currentPDFPage - 1) / (prefs.PV_x_num * prefs.PV_y_num)
- a = global.currentPDFPage - (TRUNC(a) * prefs.PV_x_num * prefs.PV_y_num)
- /* a = current pic on current page! */
-
- b = TRUNC( (a-1) / prefs.PV_x_num ) + 1
- /* b = current vertical placement */
-
- c = a - ((b-1) * prefs.PV_x_num)
- /* c = current horizontal placement */
-
- ePos.left = global.MasterPageMargin_Left + (c-1) * global.oneX
- ePos.top = global.MasterPageMargin_Top + (b-1) * global.oneY
-
- ADDRESS 'PAGESTREAM'
- 'PLACEGRAPHIC FILE "'|| toFile ||'" FILTER EPS AT '|| ePos.left ePos.top
- IF (RC = 0)
- THEN DO
- newID = RESULT
- 'GETEPS POSITION pos OBJECTID '|| newID
-
- f1 = (pos.right - pos.left) / global.oneX
- f2 = (pos.bottom - pos.top) / global.oneY
- IF (f1 > f2) THEN f = f1
- ELSE f = f2
-
- ePos.right = ePos.left + (pos.right - pos.left) / f
- ePos.bottom = ePos.top + (pos.bottom - pos.top) / f
-
- IF (prefs.PV_LeaveExternal = global.TRUE)
- THEN DO
- 'EDITEPS POSITION '|| ePos.left ePos.top ePos.right ePos.bottom ||' STORED EXTERNAL OBJECTID '|| newID
- END
- ELSE DO
- 'EDITEPS POSITION '|| ePos.left ePos.top ePos.right ePos.bottom ||' OBJECTID '|| newID
- END
- global.currentPDFPage = global.currentPDFPage + 1
- IF (a >= prefs.PV_x_num * prefs.PV_y_num)
- THEN DO
- 'DISPLAY PAGE NEXT'
- END
- END
- ELSE DO
- Return const.RetErrorPlace
- END
- END
-
- RETURN 1
- /* /// */
-
-